home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 45
/
64er_Magazin_Sonderheft_45_19xx_Markt__Technik_de_Side_A.d64
/
listing 14
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
46 lines
10 rem * sprite beispiel 3 *
20 rem das heissluftmonster
30 vic=13*4096:rem hier beginnen die vic-register
35 poke vic+21,1:rem einschalten sprite 0
36 poke vic+33,14:rem hintergrundfarbe hellblau
37 poke vic+23,1:rem sprite 0 in y verdoppeln
38 poke vic+29,1:rem und in x
40 poke 2040,192:rem spritezeiger 0 auf block 192
50 poke vic+28,1:rem mehrfarbenmodus sprite 0
60 poke vic+37,7:rem farbregister 0 setzen
70 poke vic+38,4:rem farbregister 1 setzen
180 poke vic,100:rem x-position sprite 0
190 poke vic+1,100:rem und y-position
220 poke vic+39,2:rem farbe sprite 0
250 for y=0 to 63
300 read a:rem spritedaten lesen
310 poke 192*64+y,a:rem und eintragen
320 next y
330 dx=1:dy=1
340 x=peek(vic):rem x-position pruefen
350 y=peek(vic+1):rem y-position testen
360 if y=50 or y=208 then dy=-dy:rem bei randposition dy umkehren
380 if x=24 and (peek(vic+16)and 1)=0 then dx=-dx:rem wenn sprite
390 rem am linken rand (x<24 und msb=0) dann dx umkehren
400 if x=40 and (peek(vic+16)and 1)=1 then dx=-dx:rem wenn sprite
410 rem am rechten rand (x=40 und msb=1) dann dx umdrehen
420 if x=255 and dx=1 then x=-1:side=1
430 rem umschalten auf andere bildschirmseite
440 if x=0 and dx=-1 then x=256:side=0
450 rem umschalten auf andere bildschirmseite
460 x=x+dx:rem addieren von dx zu x
470 x=x and 255:rem sicherstellen dass x im erlaubten bereich
480 y=y+dy
485 poke vic+16,side
490 poke vic,x:rem neue x-position sprite 0
510 poke vic+1,y:rem neuer y-wert
520 geta$:rem erwartet tastendruck
521 if a$="m" then poke vic+28,1:rem umschalten auf multicolorsprite
522 if a$="h" then poke vic+28,0:rem umschalten auf hires-sprite
530 goto 340
600 rem ***** sprite daten *****
610 data 64,0,1,16,170,4,6,170,144,10,170,160,42,170,168,41,105,104,169,235,106
620 data 169,235,106,169,235,106,170,170,170,170,170,170,170,170,170,170,170,170
630 data 166,170,154,169,85,106,170,85,170,42,170,168,10,170,160,1,0,64,1,0,64
640 data 5,0,80,0